package com.dinstar.dinlink.server;

import android.app.Notification;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.app.Service;
import android.content.Intent;
import android.os.Build;
import android.os.IBinder;
import androidx.core.app.NotificationCompat;

import com.dinstar.dinlink.R;


/**
 * 定义一个前台 服务
 */
public class MyForegroundService extends Service {

    private static final String CHANNEL_ID = "ForegroundServiceChannel";

    @Override
    public void onCreate() {
        super.onCreate();
        // 创建通知渠道（Android 8.0及以上需要）
        createNotificationChannel();
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        // 创建通知
        Notification notification = new NotificationCompat.Builder(this, CHANNEL_ID)
                .setContentTitle("前台服务运行中")
                .setContentText("服务正在执行任务...")
                .setSmallIcon(R.mipmap.ic_launcher) // 设置通知图标
                .setPriority(NotificationCompat.PRIORITY_DEFAULT)
                .build();

        // 将服务启动为前台服务
        startForeground(1, notification);
        // 在这里执行你的任务逻辑
        doWork();
        // 如果服务被杀死，不自动重启
        return START_NOT_STICKY;
    }

    @Override
    public IBinder onBind(Intent intent) {
        return null; // 不需要绑定服务时返回null
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        // 服务销毁时的清理工作
    }

    private void createNotificationChannel() {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
            NotificationChannel serviceChannel = new NotificationChannel(
                    CHANNEL_ID,
                    "Foreground Service Channel",
                    NotificationManager.IMPORTANCE_DEFAULT
            );
            NotificationManager manager = getSystemService(NotificationManager.class);
            manager.createNotificationChannel(serviceChannel);
        }
    }

    private void doWork() {
        // 在这里执行你的任务逻辑
        // 例如：下载文件、播放音乐等
    }
}